import amaret.freestyle.BoardC;

import BoardC.Board;
import BoardC.BenchmarkCycleCounter;
import BoardC.GlobalInterrupts;
import BoardC.Mcu;
import BoardC.Uart;

metaonly module CoreC inherits amaret.freestyle.core.IBaseC {

}

implementation {

    final Scheduler.GlobalInterrupts := GlobalInterrupts;
    
    Benchmark.CycleCounter := BenchmarkCycleCounter;
    BenchmarkCycleCounter.$used := Benchmark.$used && Benchmark.CycleCounter == BenchmarkCycleCounter;
    
    SystemGate.GlobalInterrupts := GlobalInterrupts;
    
    SystemSupport.Mcu := Mcu;
    SystemSupport.Board := Board;

    UartByteWriter.Uart := Uart;

}

